package com.xkcyy.one.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 智能体实体类
 * 
 * @author yuand
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("agent")
public class Agent extends BasicEntity {

    /**
     * 智能体名称
     */
    private String name;

    /**
     * 智能体描述
     */
    private String description;

    /**
     * 所属用户ID
     */
    private Long userId;

    /**
     * 系统提示词
     */
    private String systemPrompt;

    /**
     * 角色类型(MAIN/ASSISTANT/EXPERT)
     */
    private String role;

    /**
     * 是否可训练优化
     */
    private Boolean trainable;

    /**
     * 版本号
     */
    private Integer version;

    /**
     * 状态(ACTIVE/INACTIVE/TRAINING)
     */
    private String status;

    /**
     * 是否启用API接口
     */
    private Boolean apiEnabled;

    /**
     * 角色类型枚举
     */
    public static class Role {
        /**
         * 主智能体
         */
        public static final String MAIN = "MAIN";

        /**
         * 辅助智能体
         */
        public static final String ASSISTANT = "ASSISTANT";

        /**
         * 专家智能体
         */
        public static final String EXPERT = "EXPERT";
    }

    /**
     * 状态枚举
     */
    public static class Status {
        /**
         * 激活状态
         */
        public static final String ACTIVE = "ACTIVE";

        /**
         * 非激活状态
         */
        public static final String INACTIVE = "INACTIVE";

        /**
         * 训练中状态
         */
        public static final String TRAINING = "TRAINING";
    }
}